package ws;

import java.util.ArrayList;
import java.util.Collection;

import org.orm.PersistentException;

import soapvo.ProvinciaSOAPVO;

import com.google.gson.Gson;

public class ProvinciaSOA {
	
	public ProvinciaSOA (){}

	public String getTodasLasProvincias () throws PersistentException {		
		orm.DAOFactory factory = orm.DAOFactory.getDAOFactory();
		orm.Trp_provincia[] provincias;

		provincias = factory.getTrp_provinciaDAO().listTrp_provinciaByQuery(null, null);
		return buscar(provincias);
	}
	
	public String getProvinciaId (int pr_id_prov) throws PersistentException {		
		orm.DAOFactory factory = orm.DAOFactory.getDAOFactory();
		orm.Trp_provincia[] objeto;

		objeto = factory.getTrp_provinciaDAO().listTrp_provinciaByQuery("pr_id_prov = " + pr_id_prov , null);
		return buscar(objeto);
	}
	
	public String getProvinciaRegion (String region) throws PersistentException {		
		orm.DAOFactory factory = orm.DAOFactory.getDAOFactory();
		orm.Trp_provincia[] objeto;

		objeto = factory.getTrp_provinciaDAO().listTrp_provinciaByQuery("region.re_des_region = '" + region+"'", null);
		return buscar(objeto);
	}
	
	public String getProvinciaNombre (String pr_des_prov) throws PersistentException {		
		orm.DAOFactory factory = orm.DAOFactory.getDAOFactory();
		orm.Trp_provincia[] objeto;

		objeto = factory.getTrp_provinciaDAO().listTrp_provinciaByQuery("pr_des_prov= '" + pr_des_prov + "'", null);
		return buscar(objeto);
	}
	
	private String buscar(orm.Trp_provincia[] arreglo) {

		String mensaje="";
		int largo=0;	
		Collection<ProvinciaSOAPVO> coleccionSoapvo = new ArrayList<ProvinciaSOAPVO>();
		largo = arreglo.length;

		if(largo>0){

			for(int i=0;i<largo;i++) {
				ProvinciaSOAPVO objeto = ProvinciaSOAPVO.crearSOAPVO(arreglo[i]);
				coleccionSoapvo.add(objeto);
			}		
			Gson gson = new Gson();
			mensaje = gson.toJson(coleccionSoapvo);

		} else mensaje = "No existen registros;";

		return mensaje;
	}
}
